home *** CD-ROM | disk | FTP | other *** search
-
-
-
- 1. CYBER 170 KERMIT
-
- Authors: Jim Knutson, University of Texas
- Version: 2.2
- Date: September 1984
-
- Cyber Kermit was written for a Cyber 170/750 in FTN5, CDC's FORTRAN 77 com-
- piler. It should run on any NOS or NOS/BE system with only minor changes to
- the I/O routines. This is a necessary evil since every Cyber site seems to run
- a different front end.
-
-
- 1.1. Cyber File Systems
-
- The features of a Cyber file system of greatest interest to KERMIT users are
- storage class, file structure, file specifications and character sets.
-
-
- Cyber Storage Classes
-
- The NOS and NOS/BE operating systems use the concept of local and permanent
- file storage. This means that files that are to be kept around after a job is
- finished must be moved to permanent storage first. Jobs that wish to use a
- file from permanent storage must copy to local storage first before using it
- (actually, direct access permanent files help alleviate this problem). Most
- Kermit users will only want to use local files.
-
-
- Cyber File Structure
-
- Many Cyber files use internal structure information much like VMS files. These
- internal structures are mainly used in executable binary files or certain CRM
- record types. The internal structure of files is not currently supported by
- Cyber Kermit. Cyber executable binaries, and multi-record files are not trans-
- ferable using Kermit.
-
-
- Cyber File Specification
-
- A Cyber file name consists of from 1 to seven alphanumeric characters. NOS
- systems allow the first character to be numeric but most Cyber processors do
- not support this. Cyber Kermit allows the first character to be a digit on NOS
- systems. Special characters are not allowed in the file name. File names
- beginning with ZZ or SCR should be avoided, since these are commonly used
- scratch file names. The Cyber Kermit command processor does not support wild
- cards at this time.
-
-
- Cyber Character Sets
-
- Until the recent Cyber 800 Series mainframes, the character set used by most
- Cyber systems was a six bit Display Code character set. The six bit character
- sets supported by Cyber Kermit are the 63 character, 64 character and UT 64
- character sets. These character sets not only differ in their ordering but
- also in the characters they use. Some use the underscore and percent sign,
- others do not. ASCII characters received by Cyber Kermit are translated to the
-
-
-
- appropriate display code when possible. A character that can not be translated
- will be set to a blank. Users of the 64 character set may have problems with
- colons at the end of a line being truncated or lines with sequential colons
- being split into two or more lines since the character value of a colon is 00B
- (half of an End-Of-Line).
-
- There are also several ASCII character sets in use on the various Cyber sys-
- tems. One set, called 6/12, uses 6 bit display code characters with certain
- characters set aside as flags to indicate case (upper/lower) or control charac-
- ters. Cyber Kermit does not support the 6/12 character set. Another ASCII
- character set is the 8/12 character set. This stores ASCII characters as 8
- bits in a 12 bit byte. The exception to this is that an EOL (End-Of-Line) is
- indicated by the usual CDC convention of at least twelve bits of 0 (0000B) in
- the low order bits of the word. NUL characters are represented as 4000B to
- prevent interpretation as an EOL sequence. Cyber Kermit also support UT 8/12
- ASCII. The difference between this and NOS 8/12 ASCII is UT 8/12 ASCII uses
- the NEL character (205B) from the 256 character ASCII set to represent an
- End-Of-Line.
-
-
- 1.2. Program Operation
-
- Cyber Kermit's prompt is "Kermit-170>". It must be run interactively and with-
- out any parameters. Commands can then be typed in like this:
-
- .kermit
- Kermit-170>send foobar
-
- [file foobar sent]
-
- Kermit-170>status
-
- [performance statistics are printed]
-
- Kermit-170>receive
-
- [files are received]
-
- Kermit-170>exit
- .
-
- Cyber Kermit mimics the DEC-20 style command parser in that a question mark
- followed by a carriage return may be placed anywhere on the command line. This
- will display the options available at that point. Unfortunately, the entire
- command will have to be retyped afterwards.
-
- Command keywords may be abbreviated to their shortest unique combination. This
- comes in very handy since Cyber Kermit does not support command completion.
-
- Cyber Kermit may only be run as a remote Kermit. It must be watched during
- transfer if the local Kermit has no timeout since it has no timeout
- capabilities.
-
- A Cyber filename is restricted to 7 alphanumeric characters with the first
- character being an alpha. Kermit will use the first 7 valid characters of any
- file being sent to the Cyber. If a file under that name already exists, an Er-
-
-
-
- ror packet stating so will be sent back and Cyber Kermit will abort the trans-
- fer.
-
- If you are having trouble transferring files with Kermit, it may be due to the
- parity. Cyber Kermit has no way of determining the parity of the connection so
- it just guesses that it will be NONE. If you are having problems getting the
- first packet to transfer, then this is probably the problem. If you are run-
- ning with a parity other than NONE, then you must use the SET PARITY command
- every time you enter Cyber Kermit.
-
-
- 1.3. Cyber Kermit Commands
-
- The following is a list of Cyber Kermit commands and their description.
-
- ! command Execute a Cyber control command and then return to Kermit.
-
- EXIT, QUIT Exit from Kermit-170. You may also stop Kermit-170 in the
- midst of a transfer or during server operations by aborting the
- program (CTRL-C or CTRL-G ABORT); the program traps them and
- puts your terminal back to normal before halting.
-
- HELP [topic] Give Help. There's a general help text, plus separate help
- texts for each Kermit-170 command.
-
- PUSH Exit to control command level saving the current Kermit en-
- vironment. The environment will be restored when Kermit is
- reentered.
-
- RECEIVE Receive a file or group of files from the other host. If the
- name in the header packet is not a legal Cyber file name, the
- first 7 legal characters will be used.
-
- If the file already exits as a local file, Kermit will abort
- the transfer. If an error occurs during transfer, the file
- being received will be removed from the local file list to al-
- low the transfer to be retried. You should escape back to your
- local Kermit after entering RECEIVE mode and give the SEND com-
- mand.
-
- SEND filename Send a file to the other host. The name of the file is passed
- to the other host in a file header packet, so that the file can
- be stored there with the same name. You should escape back to
- your local Kermit and give the RECEIVE command. If you don't
- do this fast enough the "send-init" packet may arrive prema-
- turely. To prevent this, use SET DELAY or hit the RETURN key
- on your microcomputer if it does not timeout.
-
- SERVER Act as a server for another Kermit. Whatever options were
- previously SET will be used. The server may be shut down from
- the local Kermit by using the BYE or FINISH commands, or by
- connecting back to the Cyber, and typing Control-C or Control-G
- ABORT.
-
- SET keyword value
- Establish system-dependent parameters. You can examine their
-
-
-
- values with the SHOW command. Numeric values may be decimal,
- octal (postfixed with a B), or hexadecimal (postfixed by an H).
- The following may be SET:
-
- DATA-MODE ctype
- Set the character code to use for files received by
- Kermit-170. Allowable values for ctype are: ASCII,
- DISPLAY-CODE, IMAGE-ASCII, NOS-ASCII. The interpreta-
- tion of these is dependent on the system. DISPLAY-CODE
- will be the six bit character set in use at the site
- (63 or 64). ASCII will be NOS 8/12 ASCII for all sites
- except the University of Texas. NOS-ASCII is used to
- describe NOS 8/12 ASCII at UT while ASCII describes UT
- 8/12 ASCII. The default character set in use when Ker-
- mit starts up is DISPLAY-CODE. Automatic character set
- recognition is used for sending files unless
- IMAGE-ASCII is set.
-
- DEBUG option
- Show packet traffic explicitly. Options are:
-
- ALL Set all debug options.
-
- LOG-FILE filename
- Log states and packets to the specified file.
- The default log-file is file KERMLOG.
-
- OFF Don't display debugging information (this is
- the default). If debugging was in effect, turn
- it off and close any log file.
-
- PACKETS Display each incoming and outgoing packet
- (lengthy).
-
- STATES Show kermit state transitions and packet num-
- bers (brief).
-
- DELAY decimal-number
- How many seconds to wait before sending the first
- packet. This gives you time to "escape" back and issue
- a RECEIVE command.
-
- DUPLEX keyword
- Changes the method of echoing characters when being
- prompted for commands. The choices are FULL and HALF.
- Full means the Cyber will echo the characters you type.
- Half means the local systems echoes them. Full is the
- default, and is used by most hosts.
-
- INIT-RETRY decimal-number
- Set the maximum number of retries allowed for the in-
- itial connection before giving up.
-
- PARITY keyword
- Allows you to adjust the parity on characters sent or
- received by Kermit-170 to another system's require-
-
-
-
- ments. The possibilities are NONE, EVEN, ODD, SPACE,
- or MARK. If NONE, then the 8th bit can be used for
- data when sending and receiving binary files. If other
- than NONE, the 8th bit on outgoing characters will be
- set to achieve the desired parity, and the 8th bit on
- incoming characters will be discarded. The default is
- NONE.
-
- RECEIVE parameter value
- These commands allow you to specify to the other Kermit
- what the packets it sends should look like, or to in-
- form this Kermit what to expect. Value may be
- specified as a decimal number, an octal number (B
- suffix), or a hexadecimal number (H suffix). Charac-
- ters values are specified as the numeric equivalent of
- the ASCII character.
-
- END-OF-LINE value
- The octal value of the ASCII character to be
- used as a line terminator or packets, if one is
- required by the other system. Carriage return
- (15B) is the default.
-
- PACKET-LENGTH value
- Maximum packet length to send, decimal number,
- between 20 and 94, 94 by default.
-
- PAD-CHARACTER value
- Character to use for padding. Default is NUL.
-
- PAD-LENGTH value
- How much padding to send before a packet.
- Default is no padding.
-
- QUOTE-CHARACTER value
- What printable character to use for quoting of
- control characters.
-
- SYNC-CHARACTER value
- The control character that marks the beginning
- of the packet. Normally SOH (Control-A, ASCII
- 1). There should be no reason to change this.
-
- TIME-OUT value
- How many seconds the other Kermit should wait
- for a packet before asking for retransmission.
-
- RDELAY millisec
- Set up a delay of millisec seconds before each TTY
- read. This can be used for performance tuning by caus-
- ing enough delay that data will be ready when the read
- is issued. If data is not ready when the read is
- issued, the job will be swapped out. The delay should
- be specified as a multiple of 100. The default delay
- is 100 milliseconds.
-
-
-
- RETRY value
- Set the maximum number of retries for a given packet
- before giving up.
-
- SEND parameter value
- These commands allow you to specify how outgoing pack-
- ets should look, in case the other Kermit has nonstan-
- dard requirements.
-
- END-OF-LINE value
- The octal value of the ASCII character to be
- used as a line terminator for packets, if one
- is required by the other system. Carriage
- return (15B) by default.
-
- PACKET-LENGTH value
- Maximum packet length to send, decimal number,
- between 20 and 94, 94 by default.
-
- PAD-CHARACTER value
- Character to use for padding. Default is NUL.
-
- PAD-LENGTH value
- How much padding to send before a packet.
- Default is no padding.
-
- QUOTE-CHARACTER value
- What printable character to use for quoting of
- control characters. The default is "#" (43B).
- there should be no reason to change this.
-
- SYNC-CHARACTER value
- The control character that marks the beginning
- of the packet. Normally SOH (Control-A, ASCII
- 1). There should be no reason to change this.
-
- TIME-OUT value
- How many seconds the other Kermit should wants
- before being asked for retransmission. Unfor-
- tunately, the Cyber has no way of timing out so
- this parameter is ignored.
-
- SHOW Display current SET parameters, version of Kermit-170, and
- other information.
-
- STATUS Give statistics about the most recent file transfer.
-
-
- 1.4. Installation
-
- Cyber Kermit is distributed in two forms. If you received it from Columbia
- University, the sources are in UPDATE source format. If you received it from
- the University of Texas, it will be in UPDATE program library format. Other
- formats may be written by the University of Texas upon request.
-
- The Cyber Kermit source comes in two files. One file (KERMUPL) will contain
-
-
-
- the FTN5 source code for Kermit itself. The other file (AZLBUPL) contains the
- COMPASS I/O and low level support routines supplied by the University of
- Arizona. Many of these routines are FORTRAN interface routines to the COMPASS
- system macros. These should run as is on NOS/BE systems and most should run as
- is on NOS systems. The routines that are needed from AZLIB (the library
- produced from AZLBUPL) are: CPU.BTZ, CPU.MFS, CPU.VFN, CLOSE, CPU.MVC, CPU.SCS,
- CPU.SXT, CPU.TXS, OPEN, READ, WRITER, READC, READW, WRITEW, ENDRUN, RECALL,
- RTIME, MOVECH, XSCS, XSXT, XTXS, XVFN, RETFILE, XCON, EXCST, and MACREL. These
- routines should be assembled and placed in the file AZLIB and tested to make
- sure they work on your system. The normal command sequence for this would be:
-
- .UPDATE,P=AZLBUPL,F.
- .COMPASS,I.
- .LIBGEN,P=AZLIB.
-
- The next thing to do is start building Kermit. There are several things to do
- first, though. Cyber Kermit uses conditional compilation for the different
- operating systems and site dependent routines. Modify the parameter defini-
- tions in common deck COMCKER to reflect your operating system and site. Note
- that the site definition is only usefull if you need to have site specific
- routines or code. Currently, the only site specific routines are used to
- change the duplex from FULL to HALF and back again (ECHOPLX used at UA, BELLC
- used at UT). Site specific code is used at UT due to our strange character
- sets, and for setting ASCII mode for I/O in subroutine FOPEN. The display code
- character set parameter must also be modified in common deck COMCKER to reflect
- the appropriate character set (63, 64) in use at your site.
-
- NOS sites will probably have to modify subroutine RDELAY to accomodate the dif-
- ferent format returned by the RTIME macro. If a NOS site would send it's mods
- back to the University of Texas, then this could be conditionally compiled and
- other NOS sites would no longer have to worry about this.
-
- Once the duplex changing (not neccessary at half duplex sites, but be sure to
- change the default duplex in subroutine BLOCK DATA to HALFDUP) and the code for
- setting ASCII I/O has been set up debugging can take place. Decide on which
- version of Cyber Kermit you wish to run (OVCAP or SEGLOAD). Most sites are
- running the OVCAP version and installing it in the system nucleus. To build
- the OVCAP version place the following lines in file UPDMODS:
-
- *IDENT,moddeck
- *DEFINE,OVCAP
-
- and run the commands:
-
- .UPDATE,P=KERMUPL,F,I=UPDMODS.
- .FTN5,I,OPT=2. COMPILE KERMIT SOURCE
- .FTN5,I,OPT=2,B=LIBREL. COMPILE LIBRARY SOURCE
- .LIBGEN,P=KERMLIB. BUILD KERMIT LIBRARY
- .LDSET,MAP=SBEX.
- .LOAD,LGO. LOAD KERMIT, KERMLIB AND AZLIB
- .NOGO,KERMIT.
-
- To build the segload version, place the following segload directives into file
- KERMSEG:
-
-
-
- TREE KERMIT-(SET,HLPCMD,EXECMD,SERVER-(RECEIVE,SEND))
- SET INCLUDE SHOW,STATUS,MATCH,SETVAL
- RECEIVE INCLUDE RINIT,RFIEL,RDATA
- SEND INCLUDE SINIT,SFILE,SDATA,SEOF,SBREAK
- KERMIT GLOBAL PROTO,PACKET,DEBUG,MESSAGE,FILEIO,FILEIOC
- END KERMIT
-
- and run the commands:
-
- .UPDATE,P=KERMUPL,F.
- .FTN5,I,OPT=2. COMPILE KERMIT SOURCE
- .LDSET,LIB=AZLIB
- .LDSET,MAP=SBEX.
- .SEGLOAD,I=KERMSEG,B=KERMIT. LOAD KERMIT, AZLIB
- .LOAD,LGO.
- .NOGO.
-
- To aid in debugging of the OVCAP version, remove the line:
-
- LDSET OMIT=SYSERR.
-
- from the COMPASS main program. This was put there to remove uneeded
- (hopefully) code and reduce field length.
-
- Be sure to read the implementation notes in the program source. These notes
- are likely to be the more upto date.
-
- Planned further enhancements to Kermit-170 being done at the University of
- Texas include:
-
-
- - Addition of new server functions: directory, type, delete, etc.
- - Two and Three character checksums.
- - 8th-bit quoting, to allow transfer of binary files with systems that
- can't use the parity bit for data.
- - Repeat processing for data compression.
- - Badly needed performance tuning. Currently we have been experiencing
- 700-900 baud effective data throughput on a 2400 baud line.
-
-
-
- Index
-
-
- ! 2
-
- CDC 0
- Character Set 3
- Control-C 2
- CYBER 0
-
- Debugging 3
- Duplex 3
-
- EXIT 2
-
- Help 1, 2
-
- NOS 0
- NOS/BE 0
-
- Parity 2, 3
- Performance Tuning 4
- PUSH 2
-
- QUIT 2
-
- RECEIVE 2
-
- SEND 2
- SERVER 2
- SET 2
- SHOW 5
- STATUS 5
-
-
-
- Table of Contents
-
- 1. CYBER 170 KERMIT 0
-
- 1.1. Cyber File Systems 0
- 1.2. Program Operation 1
- 1.3. Cyber Kermit Commands 2
- 1.4. Installation 5
-
- Index 8
-